
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>3、快速上手 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>3、快速上手 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">目标</div>
          <div class="card-question">这个n8n自动化工作流的核心目标是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">目标</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">核心目标是创建一个自动化流程：每天从Dev.to的RSS源获取最新的编程文章标题，使用OpenAI API生成一条吸引人的推文灵感，并将其保存到Google Sheets中进行记录或审核。</div>
          </div>
          <div class="card-source">来源: 文档开篇介绍部分及「案例目标」章节</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">配置</div>
          <div class="card-question">在这个工作流中，用于定时触发的节点是什么，以及它是如何配置的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">配置</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">工作流使用“Schedule Trigger”节点进行定时触发。它的配置为“Mode”选择“Every Day”，“Hour”设置为“8”，“Minute”设置为“0”，从而实现每天早上8点自动运行。</div>
          </div>
          <div class="card-source">来源: 步骤指南 - 2. 添加定时触发节点</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">工作流是如何从Dev.to获取文章的？具体配置了哪些关键参数？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">工作流使用“RSS Read”节点来获取文章。关键配置参数是“URL”设置为Dev.to的公开RSS源“https://dev.to/feed”，“Limit”设置为“1”，以确保只获取最新的一篇文章。</div>
          </div>
          <div class="card-source">来源: 步骤指南 - 3. 获取 Dev.to 文章</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">配置</div>
          <div class="card-question">在使用OpenAI节点生成推文时，其Prompt中包含了哪些具体要求？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">配置</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Prompt要求OpenAI根据文章标题和链接，生成一条不超过280字符的Twitter推文。推文风格需“专业但有趣”，并包含“程序员梗和表情”（如🧑‍💻或🚀），以确保内容吸引人且适合技术分享。</div>
          </div>
          <div class="card-source">来源: 步骤指南 - 4. 生成推文灵感</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">“Set”节点在这个工作流中扮演了什么角色？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">“Set”节点用于格式化数据并添加额外元素。它将OpenAI生成的内容整理成“tweet”字段，并添加了“timestamp”字段。此外，它还可以通过表达式添加固定的标签（如#DevInspiration）或随机的程序员梗，以增加推文的趣味性。</div>
          </div>
          <div class="card-source">来源: 步骤指南 - 5. 格式化推文并添加趣味元素</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">数据最终是如何被保存到Google Sheets的？需要配置哪些关键信息？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">通过“Google Sheets”节点，使用“Append”操作将数据追加到表格中。需要配置Spreadsheet ID（表格ID）、Sheet Name（工作表名称），并将时间戳、推文内容和文章链接分别映射到指定的列（例如Column A, B, C）。</div>
          </div>
          <div class="card-source">来源: 步骤指南 - 6. 保存到 Google Sheets</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">要成功构建并运行这个工作流，需要准备哪些前提条件？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">需要已安装的n8n、一个用于创建Google Sheet和配置API的Google账户、一个用于获取API密钥的OpenAI账户，以及浏览器访问n8n工作台。如果需要直接发布，还需要一个Twitter/X开发者账户。</div>
          </div>
          <div class="card-source">来源: 前提条件</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">在完成所有节点的配置后，需要哪两个关键步骤才能让工作流真正地自动运行起来？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">首先需要点击右上角的“Save”按钮保存工作流，然后必须将“Active”按钮切换到开启（绿色）状态。这样工作流才会根据定时触发器的设置自动执行。</div>
          </div>
          <div class="card-source">来源: 步骤指南 - 8. 保存并激活工作流</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">备选方案</div>
          <div class="card-question">如果无法使用Dev.to的RSS源或OpenAI API，文档中提到了哪些替代方案？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">备选方案</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">如果Dev.to RSS不可用，可以使用HTTP Request节点调用Dev.to API（https://dev.to/api/articles?top=1）。如果没有OpenAI密钥，可以使用Hugging Face API（免费模型）或在Set节点中手动编写推文模板。</div>
          </div>
          <div class="card-source">来源: 步骤指南 - 3. 获取 Dev.to 文章 和 4. 生成推文灵感 中的“提示”部分</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
